package com.ruoyi.cat.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 折扣订单对象 ad_ticket_order
 * 
 * @author ruoyi
 * @date 2025-07-16
 */
public class AdTicketOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 票卷id */
    @Excel(name = "票卷id")
    private Long ticketId;

    /** 用户id */
    @Excel(name = "用户id")
    private Long userId;

    /** 数量 */
    @Excel(name = "数量")
    private Long quantity;

    /** 价格 */
    @Excel(name = "价格")
    private BigDecimal price;

    /** 0代付款 1待使用 2退款售后 3交易已完成 4 退款完成 */
    @Excel(name = "0代付款 1待使用 2退款售后 3交易已完成 4 退款完成")
    private String state;

    /** 订单号 */
    @Excel(name = "订单号")
    private String orderCode;

    /** 折扣率 */
    @Excel(name = "折扣率")
    private BigDecimal discountedPrice;

    /** 有效期开始日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date validStartDate;

    /** 有效期结束日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "有效期结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date validEndDate;

    /** 退款原因 */
    @Excel(name = "退款原因")
    private String refundReason;

    /** 1原路放回 2退至钱包 */
    @Excel(name = "1原路放回 2退至钱包")
    private String refundWay;

    /** 用户名称 */
    @Excel(name = "用户名称")
    private String userName;

    /** 手机号 */
    @Excel(name = "手机号")
    private String phone;

    //票价标题
    private String ticketRollTitle;
    //买家
    private String buyerName;

    private String verificationCode;

    private String type;

    private String refundOrder;

    public String getRefundOrder() {
        return refundOrder;
    }

    public void setRefundOrder(String refundOrder) {
        this.refundOrder = refundOrder;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getVerificationCode() {
        return verificationCode;
    }

    public void setVerificationCode(String verificationCode) {
        this.verificationCode = verificationCode;
    }

    public String getBuyerName() {
        return buyerName;
    }

    public void setBuyerName(String buyerName) {
        this.buyerName = buyerName;
    }

    public String getTicketRollTitle() {
        return ticketRollTitle;
    }

    public void setTicketRollTitle(String ticketRollTitle) {
        this.ticketRollTitle = ticketRollTitle;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setTicketId(Long ticketId) 
    {
        this.ticketId = ticketId;
    }

    public Long getTicketId() 
    {
        return ticketId;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setQuantity(Long quantity) 
    {
        this.quantity = quantity;
    }

    public Long getQuantity() 
    {
        return quantity;
    }
    public void setPrice(BigDecimal price) 
    {
        this.price = price;
    }

    public BigDecimal getPrice() 
    {
        return price;
    }
    public void setState(String state) 
    {
        this.state = state;
    }

    public String getState() 
    {
        return state;
    }
    public void setOrderCode(String orderCode) 
    {
        this.orderCode = orderCode;
    }

    public String getOrderCode() 
    {
        return orderCode;
    }
    public void setDiscountedPrice(BigDecimal discountedPrice) 
    {
        this.discountedPrice = discountedPrice;
    }

    public BigDecimal getDiscountedPrice() 
    {
        return discountedPrice;
    }
    public void setValidStartDate(Date validStartDate) 
    {
        this.validStartDate = validStartDate;
    }

    public Date getValidStartDate() 
    {
        return validStartDate;
    }
    public void setValidEndDate(Date validEndDate) 
    {
        this.validEndDate = validEndDate;
    }

    public Date getValidEndDate() 
    {
        return validEndDate;
    }
    public void setRefundReason(String refundReason) 
    {
        this.refundReason = refundReason;
    }

    public String getRefundReason() 
    {
        return refundReason;
    }
    public void setRefundWay(String refundWay) 
    {
        this.refundWay = refundWay;
    }

    public String getRefundWay() 
    {
        return refundWay;
    }
    public void setUserName(String userName) 
    {
        this.userName = userName;
    }

    public String getUserName() 
    {
        return userName;
    }
    public void setPhone(String phone) 
    {
        this.phone = phone;
    }

    public String getPhone() 
    {
        return phone;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("ticketId", getTicketId())
            .append("userId", getUserId())
            .append("quantity", getQuantity())
            .append("price", getPrice())
            .append("createTime", getCreateTime())
            .append("state", getState())
            .append("orderCode", getOrderCode())
            .append("discountedPrice", getDiscountedPrice())
            .append("validStartDate", getValidStartDate())
            .append("validEndDate", getValidEndDate())
            .append("refundReason", getRefundReason())
            .append("refundWay", getRefundWay())
            .append("userName", getUserName())
            .append("phone", getPhone())
            .toString();
    }
}
